package com.vrv.app.cyberspace.modules.sys.entity;

import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import org.hibernate.validator.constraints.NotBlank;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * <p>
 * </p>
 *
 * @author sm
 * @since 2018-01-18
 */
@TableName("EVENT_MANAGE_TABLE")
public class EventManageTable extends Model<EventManageTable> {

    private static final long serialVersionUID = 1L;

    /**
     * 原记录ID
     */
    @TableId("baseID")
    private Integer baseID;
    /**
     * 标题
     */
    private String title;
    /**
     * 上报人ID
     */
    private String reportUserID;
    /**
     * 创建人ID
     */
    private String createUserID;
    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 更新时间
     */
    private Date updateTime;
    /**
     * 发生日期
     */
    @NotNull(message = "happenTime不能为空")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date happenTime;
    /**
     * 初判事件类型一级事件
     */
    private Integer primaryEventTypeFirst;
    /**
     * 初判事件类型二级事件
     */
    private Integer primaryEventTypeSecond;
    /**
     * 初判事件等级  【注：特别重大/重大/较大/一般/其他】
     */
    private Integer primaryEventGrade;
    /**
     * 传真
     */
    private String fax;
    /**
     * 反馈截止时间
     */
    @NotNull(message = "feedBackUpToTime不能为空")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date feedBackUpToTime;
    /**
     * 关联风险
     */
    private String associatedRisk;
    /**
     * 事发单位及系统功能描述
     */
    private String unitSystemDescription;
    /**
     * 事态发展概述及初判原因
     */
    private String primaryJudgment;
    /**
     * 已采取的措施和效果
     */
    private String measureToken;
    /**
     * 请求事项及工作建议
     */
    private String itemsAdvise;
    /**
     * 备注
     */
    private String remarks;
    /**
     * 附件
     */
    private String enclosure;
    /**
     * 影响及危害描述
     */
    private String influenceHarm;
    /**
     * 地域表IDs
     */
    private String regionIDs;
    /**
     * 行业IDs
     */
    private String industryIDs;
    /**
     * 下发IDs集合
     */
    private String downsSet;
    /**
     * 基础设施IDs
     */
    private String infrastructureIDs;
    /**
     * 审批人ID
     */
    @NotBlank(message = "approvalUserID不能为空")
    private String approvalUserID;
    /**
     * 事件状态 0--初始 1--在办（等待审批） 2--审批完成 3--下发中（等待反馈） 4--下发完成（反馈完毕） 5--已归档（办结）
     */
    private Integer status;
    /**
     * 总结
     */
    private String summary;
    /**
     * 总结附件
     */
    private String appendix;
    /**
     * 应对要求
     */
    private String replyClaim;
    /**
     * 跟踪/处置要求
     */
    private String handleClaim;
    /**
     * 下发厂商
     */
    private String manufacturers;

    @TableField(exist = false)
    private UserTable createUserInfo;

    @TableField(exist = false)
    private UserTable approvalUserInfo;

    @TableField(exist = false)
    private List<InfrastructureInformationTable> infrastructureList;

    @TableField(exist = false)
    private List<IndustryTable> industryList;

    @TableField(exist = false)
    private String industryListString;

    @TableField(exist = false)
    private List<RegionTable> regionList;

    @TableField(exist = false)
    private String regionListString;

    @TableField(exist = false)
    private List<EventApprovalTable> approvalList;

    @TableField(exist = false)
    private EventTypeTable firstEventType;

    @TableField(exist = false)
    private EventTypeTable secondEventType;

    @TableField(exist = false)
    private List<AttachmentTable> attachmentList;

    @TableField(exist = false)
    private int totalNum;
    @TableField(exist = false)
    private int feedbackNum;

    @TableField(exist = false)
    private int totalManuf;

    @TableField(exist = false)
    private int hadSubmit;

    @TableField(exist = false)
    private List<AttachmentTable> appendixList;


    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getCreateUserID() {
        return createUserID;
    }

    public void setCreateUserID(String createUserID) {
        this.createUserID = createUserID;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Date getHappenTime() {
        return happenTime;
    }

    public void setHappenTime(Date happenTime) {
        this.happenTime = happenTime;
    }

    public Integer getPrimaryEventTypeFirst() {
        return primaryEventTypeFirst;
    }

    public void setPrimaryEventTypeFirst(Integer primaryEventTypeFirst) {
        this.primaryEventTypeFirst = primaryEventTypeFirst;
    }

    public Integer getPrimaryEventTypeSecond() {
        return primaryEventTypeSecond;
    }

    public void setPrimaryEventTypeSecond(Integer primaryEventTypeSecond) {
        this.primaryEventTypeSecond = primaryEventTypeSecond;
    }

    public Integer getPrimaryEventGrade() {
        return primaryEventGrade;
    }

    public void setPrimaryEventGrade(Integer primaryEventGrade) {
        this.primaryEventGrade = primaryEventGrade;
    }

    public String getFax() {
        return fax;
    }

    public void setFax(String fax) {
        this.fax = fax;
    }

    public Date getFeedBackUpToTime() {
        return feedBackUpToTime;
    }

    public void setFeedBackUpToTime(Date feedBackUpToTime) {
        this.feedBackUpToTime = feedBackUpToTime;
    }

    public String getAssociatedRisk() {
        return associatedRisk;
    }

    public void setAssociatedRisk(String associatedRisk) {
        this.associatedRisk = associatedRisk;
    }

    public String getUnitSystemDescription() {
        return unitSystemDescription;
    }

    public void setUnitSystemDescription(String unitSystemDescription) {
        this.unitSystemDescription = unitSystemDescription;
    }

    public String getPrimaryJudgment() {
        return primaryJudgment;
    }

    public void setPrimaryJudgment(String primaryJudgment) {
        this.primaryJudgment = primaryJudgment;
    }

    public String getMeasureToken() {
        return measureToken;
    }

    public void setMeasureToken(String measureToken) {
        this.measureToken = measureToken;
    }

    public String getItemsAdvise() {
        return itemsAdvise;
    }

    public void setItemsAdvise(String itemsAdvise) {
        this.itemsAdvise = itemsAdvise;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public String getEnclosure() {
        return enclosure;
    }

    public void setEnclosure(String enclosure) {
        this.enclosure = enclosure;
    }

    public String getInfluenceHarm() {
        return influenceHarm;
    }

    public void setInfluenceHarm(String influenceHarm) {
        this.influenceHarm = influenceHarm;
    }

    public String getRegionIDs() {
        return regionIDs;
    }

    public void setRegionIDs(String regionIDs) {
        this.regionIDs = regionIDs;
    }

    public String getIndustryIDs() {
        return industryIDs;
    }

    public void setIndustryIDs(String industryIDs) {
        this.industryIDs = industryIDs;
    }

    public String getDownsSet() {
        return downsSet;
    }

    public void setDownsSet(String downsSet) {
        this.downsSet = downsSet;
    }

    public String getInfrastructureIDs() {
        return infrastructureIDs;
    }

    public void setInfrastructureIDs(String infrastructureIDs) {
        this.infrastructureIDs = infrastructureIDs;
    }

    public String getApprovalUserID() {
        return approvalUserID;
    }

    public void setApprovalUserID(String approvalUserID) {
        this.approvalUserID = approvalUserID;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getSummary() {
        return summary;
    }

    public void setSummary(String summary) {
        this.summary = summary;
    }

    public String getAppendix() {
        return appendix;
    }

    public void setAppendix(String appendix) {
        this.appendix = appendix;
    }

    public String getReplyClaim() {
        return replyClaim;
    }

    public void setReplyClaim(String replyClaim) {
        this.replyClaim = replyClaim;
    }

    public String getHandleClaim() {
        return handleClaim;
    }

    public void setHandleClaim(String handleClaim) {
        this.handleClaim = handleClaim;
    }

    public String getManufacturers() {
        return manufacturers;
    }

    public void setManufacturers(String manufacturers) {
        this.manufacturers = manufacturers;
    }

    public UserTable getCreateUserInfo() {
        return createUserInfo;
    }

    public void setCreateUserInfo(UserTable createUserInfo) {
        this.createUserInfo = createUserInfo;
    }

    public UserTable getApprovalUserInfo() {
        return approvalUserInfo;
    }

    public void setApprovalUserInfo(UserTable approvalUserInfo) {
        this.approvalUserInfo = approvalUserInfo;
    }

    public List<InfrastructureInformationTable> getInfrastructureList() {
        return infrastructureList;
    }

    public void setInfrastructureList(List<InfrastructureInformationTable> infrastructureList) {
        this.infrastructureList = infrastructureList;
    }

    public List<IndustryTable> getIndustryList() {
        return industryList;
    }

    public void setIndustryList(List<IndustryTable> industryList) {
        this.industryList = industryList;
    }

    public String getIndustryListString() {
        return industryListString;
    }

    public void setIndustryListString(String industryListString) {
        this.industryListString = industryListString;
    }

    public List<RegionTable> getRegionList() {
        return regionList;
    }

    public void setRegionList(List<RegionTable> regionList) {
        this.regionList = regionList;
    }

    public String getRegionListString() {
        return regionListString;
    }

    public void setRegionListString(String regionListString) {
        this.regionListString = regionListString;
    }

    public List<EventApprovalTable> getApprovalList() {
        return approvalList;
    }

    public void setApprovalList(List<EventApprovalTable> approvalList) {
        this.approvalList = approvalList;
    }

    public EventTypeTable getFirstEventType() {
        return firstEventType;
    }

    public void setFirstEventType(EventTypeTable firstEventType) {
        this.firstEventType = firstEventType;
    }

    public EventTypeTable getSecondEventType() {
        return secondEventType;
    }

    public void setSecondEventType(EventTypeTable secondEventType) {
        this.secondEventType = secondEventType;
    }

    public List<AttachmentTable> getAttachmentList() {
        return attachmentList;
    }

    public void setAttachmentList(List<AttachmentTable> attachmentList) {
        this.attachmentList = attachmentList;
    }

    public int getTotalNum() {
        return totalNum;
    }

    public void setTotalNum(int totalNum) {
        this.totalNum = totalNum;
    }

    public int getFeedbackNum() {
        return feedbackNum;
    }

    public void setFeedbackNum(int feedbackNum) {
        this.feedbackNum = feedbackNum;
    }

    public int getTotalManuf() {
        return totalManuf;
    }

    public void setTotalManuf(int totalManuf) {
        this.totalManuf = totalManuf;
    }

    public int getHadSubmit() {
        return hadSubmit;
    }

    public void setHadSubmit(int hadSubmit) {
        this.hadSubmit = hadSubmit;
    }

    @Override
    protected Serializable pkVal() {
        return this.baseID;
    }

    @Override
    public String toString() {
        return "EventManageTable{" +
                ", baseID=" + baseID +
                ", title=" + title +
                ", createUserID=" + createUserID +
                ", createTime=" + createTime +
                ", updateTime=" + updateTime +
                ", happenTime=" + happenTime +
                ", primaryEventTypeFirst=" + primaryEventTypeFirst +
                ", primaryEventTypeSecond=" + primaryEventTypeSecond +
                ", primaryEventGrade=" + primaryEventGrade +
                ", fax=" + fax +
                ", feedBackUpToTime=" + feedBackUpToTime +
                ", associatedRisk=" + associatedRisk +
                ", unitSystemDescription=" + unitSystemDescription +
                ", primaryJudgment=" + primaryJudgment +
                ", measureToken=" + measureToken +
                ", itemsAdvise=" + itemsAdvise +
                ", remarks=" + remarks +
                ", enclosure=" + enclosure +
                ", influenceHarm=" + influenceHarm +
                ", regionIDs=" + regionIDs +
                ", industryIDs=" + industryIDs +
                ", downsSet=" + downsSet +
                ", infrastructureIDs=" + infrastructureIDs +
                ", approvalUserID=" + approvalUserID +
                ", status=" + status +
                ", summary=" + summary +
                ", appendix=" + appendix +
                ", replyClaim=" + replyClaim +
                ", handleClaim=" + handleClaim +
                ", manufacturers=" + manufacturers +
                "}";
    }

    public List<AttachmentTable> getAppendixList() {
        return appendixList;
    }

    public void setAppendixList(List<AttachmentTable> appendixList) {
        this.appendixList = appendixList;
    }

    public Integer getNoFeedbackNum() {
        return totalNum - feedbackNum;
    }

    public int getHavingSubmit() {
        return totalManuf - hadSubmit;
    }

    public Integer getBaseID() {
        return baseID;
    }

    public void setBaseID(Integer baseID) {
        this.baseID = baseID;
    }

    public String getReportUserID() {
        return reportUserID;
    }

    public void setReportUserID(String reportUserID) {
        this.reportUserID = reportUserID;
    }
}
